home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Everything For A Hacker
/
19990506-[HACK].iso
/
SECURE
/
CRYPT
/
GOST.ZIP
/
EXPKEY~.ASM
< prev
next >
Wrap
Assembly Source File
|
1995-12-25
|
2KB
|
71 lines
;------------------------------------------------------
; Å«ßΓα«Ñ¡¿Ñ αáßΦ¿αÑ¡¡«ú« ¬½ετá Φ¿Σα«óá¡¿∩ ¿º «ñ¡«¬αáΓ-
; ¡«ú« ¬½ετá ñ½∩ Φ¿Σαá Γ¿»á âÄæÆ 28147-89.
; ** æσѼá αáßΦ¿αÑ¡¿∩ ºáñáÑΓß∩ ¼á߬«⌐ αáßΦ¿αÑ¡¿∩.
; ** îá߬á αáßΦ¿αÑ¡¿∩ ¼«ªÑΓ ¿¼ÑΓ∞ αẼÑα 1..32767 í¿Γ.
; --------> ñ½∩ 32-í¿Γ«óδσ »α«µÑßß«α«ó 80x86 <---------
; v3.0, Éáºαáí«Γá½ é¿¡«¬πα«ó Ç.₧., ú.î«ß¬óá, 1995 ú.
; (c) 1992-1995, æó«í«ñ¡«Ñ ¬«»¿α«óá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ.
;------------------------------------------------------
; Åáαá¼ÑΓαδ »α¿ ó맮óÑ »ÑαÑñáεΓß∩ ó ßΓφ¬Ñ :
; ê¼∩ Æ¿» æ¼δß½
; Key DWORD FAR-áñαÑß ¬½ετá
; Target DWORD FAR-áñαÑß «í½áßΓ¿ ¡áº¡áτÑ¡¿∩
; KeyLength WORD αẼÑα ¬½ετá ó 4-íá⌐Γ«óδσ í½«¬áσ
; KeyRepeat WORD τ¿ß½« »«óΓ«αÑ¡¿⌐ ¬½ετá
; RepeatMask WORD:? ¼áßß¿ó í¿Γ«ó ¡á»αáó½Ñ¡¿⌐
; 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ: τ¿ß½« óδ»«½Ñ¡¡δσ ¬«»¿⌐ ¬½ετá
; - αáó¡« »áαá¼ÑΓαπ KeyRepeat, Ñß½¿ KeyRepeat >= 0;
; - αáó¡« 0, Ñß½¿ KeyRepeat < 0;
;------------------------------------------------------
; çáú«½«ó«¬ »α«µÑñπαδ
;
.model small,C
.code $gost
.386
ExpandKey proc C
ARG Key: DWORD,\
Target: DWORD,\
KeyLength: WORD,\
KeyRepeat: WORD,\
RepeatMask: WORD
USES DS,SI,DI
public ExpandKey
;
; ìáßΓα«⌐¬á αÑú¿ßΓα«ó
;
lds SI,Key ; DS:SI=áñαÑß ¬½ετá
les DI,Target ; ES:DI=áñαÑß ¡áº¡áτÑ¡¿∩
mov AX,KeyLength ; AX <- ¬«½.φ½-Γ«ó ¬½.
lea BX,[ESI+4*EAX-4]; BX <- áñαÑß ¬«¡µá ¬½ετá
sub AX,AX ; AX=0
cld
;
; Åα«óÑα¬á πß½«ó¿∩ ºáóÑαΦÑ¡¿∩ µ¿¬½á
;
begin: cmp AX,KeyRepeat ; ¡πª¡«Ñ τ¿ß½« ßñѽᡫ ?
jge exit ; Ñß½¿ ñá, óδσ«ñ
;
; Å«óΓ«αÑ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó ¬½ετá ó »α∩¼«¼ »«α∩ñ¬Ñ
;
mov CX,KeyLength ; CX=ñ½¿¡á ¬½ετá
bt RepeatMask,AX ; CF=«τÑαÑñ¡«⌐ í¿Γ ¼á߬¿
jc Reverse ; CF=1 -> αÑóÑαß
mov SI,Word PTR Key ; SI=ß¼ÑΘÑ¡¿Ñ ¬½ετá
rep movsd ; ¬«»¿απѼ ¬½ετ
jmp short Incr ; ¡á ßτÑΓ »«óΓ«α. ¬½ετá
;
; Å«óΓ«αÑ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó ¬½ετá ó «íαáΓ¡«¼ »«α∩ñ¬Ñ
;
Reverse:mov SI,BX ; SI=áñαÑß ¬«¡µá ¬½ετá
rev: movsd ; ß½«óá ¬½ετá
sub SI,8 ; ¬ »αÑñΦ. φ½Ñ¼Ñ¡Γπ
loop rev ; «αúá¡¿ºáµ¿∩ µ¿¬½á
Incr: inc AX ; ßτÑΓτ¿¬ »«óΓ«α«ó ¬½ετá
jmp begin
;
exit: ret
ExpandKey endp
end